From 5c51a302a4536363a82b35bb4015fe9e0767c254 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 11 Apr 2018 02:38:00 +0200 Subject: [PATCH] widget: Make gtk_widget_real_realize() stricter But in turn, also allow it to work on widgets with their own surface. This way, we can chain up from everywhere and won't have to export gtk_widget_set_realized(). --- gtk/gtkwidget.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index b1fbcdfb29..9ae6acc736 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -8755,14 +8755,18 @@ gtk_widget_real_realize (GtkWidget *widget) { GtkWidgetPrivate *priv = widget->priv; - g_assert (!_gtk_widget_get_has_surface (widget)); - - gtk_widget_set_realized (widget, TRUE); - if (priv->parent) + if (_gtk_widget_get_has_surface (widget)) + { + g_assert (priv->surface != NULL); + } + else { + g_assert (priv->parent); priv->surface = gtk_widget_get_parent_surface (widget); g_object_ref (priv->surface); } + + gtk_widget_set_realized (widget, TRUE); } /***************************************** -- 2.30.2